package com.css.openapi.feign.dto;


import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;

/**
 * 银行卡验证请求DTO（卡号+证件+姓名）
 * 对应文档：-
 *
 * @author xlw
 * @date 2025/09/11
 */
@Data
public class UnionPayBankCardVerifyRequestDTO {

    /**
     * 报文类型（固定值：verify.ums.auth.bankcard，必填）
     */
    @NotBlank(message = "actionType不能为空")
    private String actionType = "verify.ums.auth.bankcard";

    /**
     * 平台ID（银商分配，必填）
     */
    @NotBlank(message = "platId不能为空")
    private String platId;

    /**
     * 业务请求流水号（第三方生成，平台内唯一，必填）
     */
    @NotBlank(message = "outRequestId不能为空")
    private String outRequestId;

    /**
     * 手机号（11位，可选）
     */
    @Pattern(regexp = "^1\\d{10}$|^$", message = "phoneNo格式应为11位手机号（可选填）")
    private String phoneNo;

    /**
     * 证件类型（01-居民身份证/02-军官证等，必填）
     */
    @NotBlank(message = "certType不能为空")
    @Pattern(regexp = "^(01|02|03|04|05|06|07|99)$", message = "certType需为指定值（01/02/03等）")
    private String certType;

    /**
     * 证件号码（必填）
     */
    @NotBlank(message = "certNo不能为空")
    private String certNo;

    /**
     * 姓名（必填）
     */
    @NotBlank(message = "name不能为空")
    private String name;

    /**
     * 银行卡号（必填）
     */
    @NotBlank(message = "cardNo不能为空")
    private String cardNo;
}